package com.lbmb.mdps.workbench.service;

import com.lbmb.mdps.commons.domain.MedicineReceive;
import com.lbmb.mdps.commons.exception.AuditException;
import com.lbmb.mdps.commons.exception.InventoryException;
import com.lbmb.mdps.commons.exception.MedicineException;
import com.lbmb.mdps.commons.exception.PurchaseException;
import com.lbmb.mdps.workbench.domain.Medicine;
import com.lbmb.mdps.workbench.domain.Purchase;

import java.util.List;

/**
 * @author 林文塨
 * @date 2022-05-30 23:11
 * description
 */
public interface MedicineService {

    List<Medicine> medicinePageList(MedicineReceive medicineReceive) throws MedicineException;

    Integer getMedicineTotal(MedicineReceive medicineReceive) throws MedicineException;

    void addMedicine(Medicine medicine) throws MedicineException;

    void editMedicine(Medicine medicine) throws MedicineException;

    void deleteMedicine(String[] deleteMedicineIds) throws MedicineException;

    void purchaseMedicine(Purchase purchase) throws PurchaseException, AuditException, InventoryException;
}
